class Obstacle
!!!145154.java!!!	init(inout _id : Integer, inout _body : CircleBody) : void
		this.id = _id;
		this.body = _body;
!!!145282.java!!!	activate(inout  : Object...params) : Status
		init((Integer) params[0], (CircleBody) params[1]);
		
		if(Config.DEBUG == true)
			System.out.println("Le role Obstacle est initialisé");
		
		return StatusFactory.ok(this);
!!!145410.java!!!	live() : Status
		this.currentState = run();
		return StatusFactory.ok(this);
!!!145538.java!!!	run() : State
		switch(this.currentState) {
			case WHERE_SOULD_I_GO :
				//Je regarde la position des agents et je cherche la mienne :
				for(Message msg : getMailbox()) {
					if(msg instanceof ObstaclesPosition) {
						//On récupère la liste des positions :
						List<Integer> positions;
						positions = ((ObstaclesPosition) msg).getPositions();
						if(this.id < positions.size())
							this.currentPosition = positions.get(this.id);
						else
							this.currentPosition = 8000;
					}
				}
				return State.MOVING;
			case MOVING :
				//C'est une autre fonction qui va s'occuper du déplacement :
				move();
				
				return State.WHERE_SOULD_I_GO;
		}
		return State.WHERE_SOULD_I_GO;
!!!145666.java!!!	move() : void
			Vector2d coord = new Vector2d();

		// passage de l'angle en radians
		double angle = (this.id * Math.PI) / 180;

		// mise l'chelle de la fentre
		double dist = (this.currentPosition * Math.min(Config.WINDOW_SIZE*2, Config.WINDOW_SIZE)) / 8000;

		// passage en coordonnes cartsiennes
		coord.x = dist * Math.cos(angle);
		coord.y = dist * Math.sin(angle);

		// passage dans le bon repere
		coord.x += Config.WINDOW_SIZE;
		coord.y = Config.WINDOW_SIZE - coord.y;

		this.body.setPosition(new Vector2d(coord));
